前一篇快速的建立了CD Release Pipeline,雖然可以被Trigger,不過卻有兩個問題,第一個就是Stage和Production環境都沒有經過人為審核確認可以佈署,直接就開始執行,一路把系統直接上到Stage環境與Production環境…,另外一個就是要Tag source需要將Pipeline執行的服務帳號加到對應的Git Repo權限設定中。
在Release Pipeline中的每一個Stage階段都可以設定各自的Approvals,它們就放在Deployment conditions的設定裡,並且還分為Pre-deployment conditions與Post-deployment conditions,我們要讓它在被執行前能有Approve的動作,所以就設定在Pre-deployment conditions設定中。
Pre-deployment conditions是在Stage方框的左邊,對應的Post-deployment conditions則是在右邊。啟用Approvals的設定只需要進入conditions設定的畫面中,將Pre-deployment approvals啟用就可以看到更多可以設定的選項。
啟用之後在Approvers裡面可以加入單一的使用者,也可以加入一個群組,如果有多個可以按下Approve按鈕的人,將他們加到群組(Team or Group)是比較好的選擇。底下的Timeout設定則是讓系統在多久時間之後沒被Approve就自動取消該Stage的Deploy。
設定了之後在執行時就可以看到如下圖的畫面多了Approve與Reject的按鈕,必須要按下Approve之後才會真正執行Release中的動作。
Release pipeline執行到Tag source code的task時會碰到TF401027的錯誤訊息,提示Git需要GenericContribute的權限,這部份主要是因為在需要操作的Git Repository沒有設定對應的權限所造成的問題。
要解決這個問題,只要進入專案設定(Project Settings)中對應的Git Repository去設定Security即可,主要確認在Users當中有沒有以組織名稱(Organization)開頭的Build Service帳號,以及Project Collection Build Service,沒有的話就把它們加進去,然後幫它們設定Contribute的權限即可(我這邊是相關操作的三個權限都設Allow)。
設定完成之後再重新執行應該就可以正常了。